package hcn.protocol.registration.xml.req;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;

/**
 * @Author impel
 * @Date 2020/11/10 11:04
 * @Description:
 * @Version 1.0
 */
@XmlRootElement(name = "Query")
public class ListAppointmentWaitRequest {
    /**
     * 机构代码
     */
    private String VisitOrganization;
    /**
     * 查询组合类型-->前人没有维护我也不知道
     */
    private String QueryType;
    /**
     * 挂号id
     */
    private String AppointsId;
    private int OutpatientType;
    private String AppointBeginDateTime;
    private String AppointEndDateTime;
    /**
     * 结束时间
     */
    private String EndTime;
    /**
     * 开始时间
     */
    private String StartTime;
    private int PageNo;
    private int PageSize;
    //新增入参
    /**
     * 门诊号
     */
    private String ClinicId;
    /**
     * 姓名
     */
    private String Name;
    /**
     * 患者电话
     */
    private String PatientPhone;
    /**
     * 证件号后四位
     */
    private String IdCard;
    /**
     * 1普通,2专家
     */
    private String RegisteredType;
    /**
     * 1已挂,0已改约
     */
    private String OperationType;
    /**
     * 科室id
     */
    private String DepartmentId;
    /**
     * 操作开始时间
     */
    private String OperateBeginDate;
    /**
     * 操作结束时间
     */
    private String OperateEndDate;
    //诊疗卡集合
    private List<MedicalCardIdList> MedicalCardIdLists;
    //病人id集合
    private List<SourcePatientIdList> SourcePatientIdLists;
    //证件号码集合
    private List<IdCardList> IdCardLists;
    private CombinedQuery CombinedQuery;

    @XmlElementWrapper(name = "MedicalCardIdLists")
    @XmlElement(name = "MedicalCardIdList")
    public List<MedicalCardIdList> getMedicalCardIdLists() {
        return MedicalCardIdLists;
    }

    public void setMedicalCardIdLists(List<MedicalCardIdList> medicalCardIdLists) {
        MedicalCardIdLists = medicalCardIdLists;
    }

    @XmlElementWrapper(name = "SourcePatientIdLists")
    @XmlElement(name = "SourcePatientIdList")
    public List<SourcePatientIdList> getSourcePatientIdLists() {
        return SourcePatientIdLists;
    }

    public void setSourcePatientIdLists(List<SourcePatientIdList> sourcePatientIdLists) {
        SourcePatientIdLists = sourcePatientIdLists;
    }

    @XmlElementWrapper(name = "IdCardLists")
    @XmlElement(name = "IdCardList")
    public List<IdCardList> getIdCardLists() {
        return IdCardLists;
    }

    public void setIdCardLists(List<IdCardList> idCardLists) {
        IdCardLists = idCardLists;
    }

    @XmlElement(name = "QueryType")
    public String getQueryType() {
        return QueryType;
    }

    public void setQueryType(String queryType) {
        QueryType = queryType;
    }


    @XmlElement(name = "OutpatientType")
    public int getOutpatientType() {
        return OutpatientType;
    }

    public void setOutpatientType(int outpatientType) {
        OutpatientType = outpatientType;
    }

    @XmlElement(name = "AppointBeginDateTime")
    public String getAppointBeginDateTime() {
        return AppointBeginDateTime;
    }

    public void setAppointBeginDateTime(String appointBeginDateTime) {
        AppointBeginDateTime = appointBeginDateTime;
    }

    @XmlElement(name = "AppointEndDateTime")
    public String getAppointEndDateTime() {
        return AppointEndDateTime;
    }

    public void setAppointEndDateTime(String appointEndDateTime) {
        AppointEndDateTime = appointEndDateTime;
    }

    @XmlElement(name = "PageNo")
    public int getPageNo() {
        return PageNo;
    }

    public void setPageNo(int pageNo) {
        PageNo = pageNo;
    }

    @XmlElement(name = "PageSize")
    public int getPageSize() {
        return PageSize;
    }

    public void setPageSize(int pageSize) {
        PageSize = pageSize;
    }

    @XmlElement(name = "VisitOrganization")
    public String getVisitOrganization() {
        return VisitOrganization;
    }

    public void setVisitOrganization(String visitOrganization) {
        VisitOrganization = visitOrganization;
    }

    @XmlElement(name = "ClinicId")
    public String getClinicId() {
        return ClinicId;
    }

    public void setClinicId(String clinicId) {
        ClinicId = clinicId;
    }

    @XmlElement(name = "Name")
    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    @XmlElement(name = "PatientPhone")
    public String getPatientPhone() {
        return PatientPhone;
    }

    public void setPatientPhone(String patientPhone) {
        PatientPhone = patientPhone;
    }

    @XmlElement(name = "IdCard")
    public String getIdCard() {
        return IdCard;
    }

    public void setIdCard(String idCard) {
        IdCard = idCard;
    }

    @XmlElement(name = "ResourceLevelCode")
    public String getRegisteredType() {
        return RegisteredType;
    }

    public void setRegisteredType(String registeredType) {
        RegisteredType = registeredType;
    }

    public String getOperationType() {
        return OperationType;
    }

    @XmlElement(name = "OperationType")
    public void setOperationType(String operationType) {
        OperationType = operationType;
    }

    @XmlElement(name = "DepartmentId")
    public String getDepartmentId() {
        return DepartmentId;
    }

    public void setDepartmentId(String departmentId) {
        DepartmentId = departmentId;
    }

    @XmlElement(name = "DepartmentId")
    public String getOperateBeginDate() {
        return OperateBeginDate;
    }

    public void setOperateBeginDate(String operateBeginDate) {
        OperateBeginDate = operateBeginDate;
    }

    @XmlElement(name = "OperateEndDate")
    public String getOperateEndDate() {
        return OperateEndDate;
    }

    public void setOperateEndDate(String operateEndDate) {
        OperateEndDate = operateEndDate;
    }

    @XmlElement(name = "AppointsId")
    public String getAppointsId() {
        return AppointsId;
    }

    public void setAppointsId(String appointsId) {
        AppointsId = appointsId;
    }

    @XmlElement(name = "EndTime")
    public String getEndTime() {
        return EndTime;
    }

    public void setEndTime(String endTime) {
        EndTime = endTime;
    }

    @XmlElement(name = "StartTime")
    public String getStartTime() {
        return StartTime;
    }

    public void setStartTime(String startTime) {
        StartTime = startTime;
    }

    @XmlElement(name = "CombinedQuery")
    public ListAppointmentWaitRequest.CombinedQuery getCombinedQuery() {
        return CombinedQuery;
    }

    public void setCombinedQuery(ListAppointmentWaitRequest.CombinedQuery combinedQuery) {
        CombinedQuery = combinedQuery;
    }

    @XmlRootElement(name = "CombinedQuery")
    public static class CombinedQuery {
        /**
         * 挂号科室代码
         */
        private String DeptCode;
        /**
         * 预约状态
         */
        private String AppointmentStatus;
        /**
         * 资源级别
         */
        private String ResourceLevelCode;
        /**
         * 根据患者姓名模糊查询
         */
        private String Keyword;
        /**
         * 根据医生姓名模糊查询
         */
        private String KeywordT;

        @XmlElement(name = "DeptCode")
        public String getDeptCode() {
            return DeptCode;
        }

        public void setDeptCode(String deptCode) {
            DeptCode = deptCode;
        }

        @XmlElement(name = "AppointmentStatus")
        public String getAppointmentStatus() {
            return AppointmentStatus;
        }

        public void setAppointmentStatus(String appointmentStatus) {
            AppointmentStatus = appointmentStatus;
        }

        @XmlElement(name = "ResourceLevelCode")
        public String getResourceLevelCode() {
            return ResourceLevelCode;
        }

        public void setResourceLevelCode(String resourceLevelCode) {
            ResourceLevelCode = resourceLevelCode;
        }

        @XmlElement(name = "Keyword")
        public String getKeyword() {
            return Keyword;
        }

        public void setKeyword(String keyword) {
            Keyword = keyword;
        }

        @XmlElement(name = "KeywordT")
        public String getKeywordT() {
            return KeywordT;
        }

        public void setKeywordT(String keywordT) {
            KeywordT = keywordT;
        }
    }
}
